.. _cmlPmMxIsDone: cmlPmMxIsDone ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlPmMxIsDone ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 NumChannel, [in] VT_PI4 NumChannel, [out] VT_PI4 IsDone) DESCRIPTION ````````````` - 여러 ê°œì˜ ì¶•ì— ëŒ€í•˜ì—¬ ì§€ì •í•œ ëª¨ë“ ì¶•ì˜ ëª¨ì…˜ì´ ì™„ë£Œë는지를 확ì¸(確èª)합니다. ì´ í•¨ìˆ˜ëŠ” ë‹¤ì¶•ì œì–´ë¿ ì•„ë‹ˆë¼ ì›ì 복귀나 ë‹¨ì¶•ëª¨ì…˜ì œì–´ ìž‘ì—…ì‹œì—ë„ í™œìš©í• ìˆ˜ 있습니다. \ - ì´ í•¨ìˆ˜ì˜ ì‚¬ìš©ê³¼ í˜¸ì¶œì— ìžˆì–´, ì œê³µëœ ãˆœì»¤ë¯¸ì¡°ì•„ì˜ í•¨ìˆ˜ í—¤ë” Visual Basic ì—서는 í•¨ìˆ˜ì˜ ì²¨ë‘ì–´ cml ê°€ 붙지 않습니다. PARAMETER ````````````` â–¶ BoardID : 사용ìžê°€ ì„¤ì •í•œ 디바ì´ìŠ¤(ë³´ë“œ) ID. â–¶ NodeId : 사용ìžê°€ ì œì–´í•˜ê³ ìž í•˜ëŠ” 노드 번호. â–¶ NumAxes : ë™ì‹œì— ìž‘ì—…ì„ ìˆ˜í–‰í• ëŒ€ìƒ ì¶•ì˜ ìˆ˜ â–¶ NumChannel : 작업완료를 확ì¸(確èª)í• ëŒ€ìƒ ì¶•ì˜ ë°°ì—´ 주소값. ì´ ë°°ì—´ì˜ í¬ê¸°ëŠ” NumAxesê°’ê³¼ ì¼ì¹˜í•˜ê±°ë‚˜ 커야 합니다. â–¶ IsDone : ë‹¤ì¶•êµ¬ë™ ì™„ë£Œ 여부를 íŒë‹¨í• 수 있는 매개변수 입니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning cmlFALSE, ëª¨ì…˜ìž‘ì—…ì´ ì™„ë£Œë˜ì§€ ì•ŠìŒ cmlTRUE, ëª¨ì…˜ìž‘ì—…ì´ ì™„ë£Œë¨ RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning ìŒìˆ˜, 수행 실패 ERR_NONE, 수행 성공 EXAMPLE ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ // BoardID는 0ì´ë¼ê³ ê°€ì •í•©ë‹ˆë‹¤. long nIsDone; long nNumChannel[2] = {0, cmY1}; double fDistList[2] = {1000, 1000}; if(cmlPmMxMove(BoardID, 0, 2, nNumChannel, fDistList, cmlFALSE) != ERR_NONE){ //Handle ì€ ì‚¬ìš©ìžê°€ ìƒì„±í•œ í¼ì˜ 핸들 값입니다. // ì—러메시지 ì¶œë ¥ return; } while (1){ cmlPmMxIsDone(BoardID, 0, 2, nNumChannel, &nIsDone); if(nIsDone == cmlTRUE) break; else{ // 다축 ëª¨ì…˜ì´ ì¢…ë£Œë˜ì§€ ì•Šì€ ê²½ìš°ìž…ë‹ˆë‹¤. ì ì ˆí•œ 처리를 합니다. } } .. code-block:: c++ :linenos: Visual Basic „BoardID 는 0ì´ë¼ê³ ê°€ì •í•©ë‹ˆë‹¤. Dim nNumChannel(2) As Long Dim fDistList(2) As Double „ ëŒ€ìƒ ì¶• ì„¤ì • nNumChannel(0) = 0 nNumChannel(1) = cmY1 „ ëŒ€ìƒ ì¶•ì— ëŒ€í•œ ì´ì†¡ 거리 ì„¤ì • fDistList(0) = 1000 fDistList(1) = 1000 If(PmMxMove(BoardID, 0, 2, nNumChannel(0), fDistList(0), cmlFALSE) <> ERR_NONE) Then // ì—러메시지 ì¶œë ¥ Exit Sub End If While(PmMxIsDone(BoardID, 0, 2, nNumChannel(0), cmlTRUE) <> ERR_NONE) Then // ì—러메시지 ì¶œë ¥ Exit Sub; End If .. code-block:: c++ :linenos: Delphi // ëŒ€ìƒ ì¶• ì„¤ì • // BoardID는 0ì´ë¼ê³ ê°€ì •í•©ë‹ˆë‹¤. nNumChannel[0] := 0; nNumChannel[1] := cmY1; // ëŒ€ìƒ ì¶•ì— ëŒ€í•œ ì´ì†¡ 거리 ì„¤ì • fDistList[0] := 1000; fDistList[1] := 1000; if(cmlPmMxMove(BoardID, 0, 2, @nNumChannel, @fDistList) <> ERR_NONE) then begin // ì—러메시지 ì¶œë ¥ end; while(cmlPmMxIsDone(BoardID, 0, 2, @nNumChannel, @IsDone) <> ERR_NONE) do begin // 여기서 IsDone ì´ cmlTRUE ì´ë©´ Loop 를 탈출하면 ë©ë‹ˆë‹¤. … end; if(cmlErrGetLastCode() <> ERR_NONE) then begin // ì—러메시지 ì¶œë ¥ end; SEE ALSO ``````````````` .. seealso:: :ref:`cmlPmMxWaitDone`